package beanstao.util.store.domainobject.interfaces;

import java.util.Date;
import java.util.List;

import beanstao.util.id.Id;
import beanstao.util.interfaces.to.IToJson;

public interface IDomain extends IToJson
{
	public boolean isModifiedByDomain();

	public Id getId();

	public void setId(Id id);

	void setCreatedTime(Date time);

	Date getCreatedTime();

	void setCreator(Id creatorId);

	Id getCreator();

	void setModifedTime(Date time);

	Date getModifedTime();

	void setModifior(Id creatorId);

	Id getModifior();

	void setIsDeleted(Boolean bool);

	Boolean getIsDeleted();

	/**
	 * 添加本实体记录的备注(描述，说明，其他)
	 * 
	 * @param memo 本实体记录的备注(描述，说明，其他)
	 */
	String getMemo();

	/**
	 * 设置本实体记录的备注(描述，说明，其他)
	 * 
	 * @param memo 本实体记录的备注(描述，说明，其他)
	 */
	void setMemo(String memo);

	public boolean existJsonAttribute(String attrName, Object value);

	public List<String> getJsonAttribute(String attrName);
}
